package com.gxa.common.utils;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * 转换过的Page对象  transfer page
 * 简称 TPage
 */
@ApiModel("分页对象")
public class TPage implements Serializable {
  private static final long serialVersionUID = 1L;
  /**
   * 总记录数
   */
  @ApiModelProperty("总记录数")
  private int totalCount;
  /**
   * 每页记录数
   */
  @ApiModelProperty("每页显示多少条")
  private int pageSize;
  /**
   * 总页数
   */
  @ApiModelProperty("总页数")
  private int totalPage;
  /**
   * 当前页数
   */
  @ApiModelProperty("当前是第几页")
  private int currPage;
  /**
   * 列表数据
   */
  @ApiModelProperty("当前页的数据")
  private List<?> list;
  
  /**
   * 分页
   * @param list        列表数据
   * @param totalCount  总记录数
   * @param pageSize    每页记录数
   * @param currPage    当前页数
   */
  public TPage(List<?> list, int totalCount, int pageSize, int currPage) {
     this.list = list;
     this.totalCount = totalCount;
     this.pageSize = pageSize;
     this.currPage = currPage;
     this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
  }

  /**
   * 分页
   */
  public TPage(IPage<?> page) {
     this.list = page.getRecords();
     this.totalCount = (int)page.getTotal();
     this.pageSize = (int)page.getSize();
     this.currPage = (int)page.getCurrent();
     this.totalPage = (int)page.getPages();
  }

  public int getTotalCount() {
     return totalCount;
  }

  public void setTotalCount(int totalCount) {
     this.totalCount = totalCount;
  }

  public int getPageSize() {
     return pageSize;
  }

  public void setPageSize(int pageSize) {
     this.pageSize = pageSize;
  }

  public int getTotalPage() {
     return totalPage;
  }

  public void setTotalPage(int totalPage) {
     this.totalPage = totalPage;
  }

  public int getCurrPage() {
     return currPage;
  }

  public void setCurrPage(int currPage) {
     this.currPage = currPage;
  }

  public List<?> getList() {
     return list;
  }

  public void setList(List<?> list) {
     this.list = list;
  }
  
}
 
